/**
 * 文件名称: main.c
 * 摘    要: linux应用程序下操作serial测试
 * 来    源: 
 *
 * 当前版本: 1.0 
 * 作    者: huenrong
 * 完成日期: 2019年05月15日
 **/

#include <stdio.h>
#include <string.h>
#include <unistd.h>

#include "serial.h"


#define     SERIAL_PORT     2

int main(int argc, char **argv)
{
    int ret = -1;
    char send_buf[] = "hello, i'm serial";

    ret = open_serial(SERIAL_PORT, 115200, 8, 'N', 1);      // 打开串口
    if (0 == ret)
    {
        printf("open serial2 ok!\n");
    }

    ret = creat_serial_receive_thread(SERIAL_PORT);
    if (0 == ret)
    {
        printf("creat_serial_receive_thread ok!\n");
    }

    while (1)
    {
        ret = serial_send_data(SERIAL_PORT, send_buf, strlen(send_buf));
        if (-1 == ret)
        {
            printf("serial_send_data fail!\n");
        }

        // 这里根据实际需要接收的数据长度进行判断，不要直接判断大于0
        if (g_serial_receive_buf_len[SERIAL_PORT] > 0)
        {
            printf("serial receive data: %s\n", g_serial_receive_buf[SERIAL_PORT]);

            // 将接收数据清空，防止下次误判断
            g_serial_receive_buf_len[SERIAL_PORT] = 0;
            memset(g_serial_receive_buf[SERIAL_PORT], 0, RECEIVE_BUF_LEN);
        }
        
        sleep(2);
    }
    
    return 0;
}